const { readFile } = require('fs')
const EventEmitter = require('events').EventEmitter

class EE extends EventEmitter {}

const ee = new EE()

ee.on('event', () => {
  console.log('event事件触发')
})

setTimeout(() => {
  console.log('0毫秒后执行的定时器回调')
}, 0);

setTimeout(() => {
  console.log('100毫秒后执行的定时器回调')
}, 100);

setTimeout(() => {
  console.log('200毫秒后执行的定时器回调')
}, 200);

readFile('../package.json', 'utf-8', (data) => {
  console.log('完成文件1 的读取')
})

readFile('../README.md', 'utf-8', (data) => {
  console.log('完成文件2 的读取')
})

setImmediate(() => {
  console.log('immediate立即回调')
})

process.nextTick(() => {
  console.log('process.nextTick第一次的回调')
})

Promise.resolve('test')
  .then(() => {
    ee.emit('event')

    process.nextTick(() => {
      console.log('process.nextTick的第二次回调')
    })

    console.log('promise 的第一次回调')
  })
  .then(() => {
    console.log('promise 的第二次回调')
  })








// new Promise((res) => {
//     res('test')
//   })
//   .then((data) => {
//     console.log(data, 'promise 的第一次回调')
//     // return Promise.resolve('test2')
//     return new Promise((res) => {
//       res('test2')
//     })
//   })
//   .then((data) => {
//     console.log(data, 'promise 的第二次回调')
//   })